Collections ক্লাসটি java.util প্যাকেজের একটি গুরুত্বপূর্ণ ক্লাস, যা static মেথড সরবরাহ করে যা বিভিন্ন ধরনের Collection (যেমন List, Set, Queue) এর অপারেশন পরিচালনা করতে ব্যবহৃত হয়। Collections ক্লাসটি শুধুমাত্র কালেকশন ফ্রেমওয়ার্কের কার্যকারিতা এবং বৈশিষ্ট্য বাড়াতে সাহায্য করে এবং এটি ডেটা স্ট্রাকচারের sorting, searching, shuffling, synchronization, reverse order ইত্যাদি কাজের জন্য ব্যবহৃত হয়।
Collections ক্লাসটি immutable collection তৈরি করতে, sorting, searching, synchronization, এবং অন্যান্য সাধারণ কাজ সহজ করে তোলে।
Collections ক্লাসের বৈশিষ্ট্যসমূহ:
- Utility Methods: এটি কেবল static methods সরবরাহ করে যা কালেকশনের ওপর বিভিন্ন গাণিতিক কার্যাবলী বা কার্যক্রম পরিচালনা করতে সহায়ক।
- Working with Collections:
Collectionsক্লাসের সাহায্যে আপনি কালেকশনের উপাদানগুলির ওপর নানা ধরনের কাজ করতে পারেন যেমন sorting, searching, reversing, shuffling ইত্যাদি। - Thread Safety: এটি বিভিন্ন thread-safe collections তৈরিতে সহায়ক।
Collections ক্লাসের সাধারণ মেথডসমূহ:
sort(List<T> list):- এই মেথডটি List এর উপাদানগুলোকে ascending অর্ডারে সাজানোর জন্য ব্যবহৃত হয়।
Collections.sort(list);reverse(List<?> list):- এই মেথডটি List এর উপাদানগুলোকে বিপরীত (reverse) অর্ডারে সাজায়।
Collections.reverse(list);shuffle(List<?> list):- এই মেথডটি List এর উপাদানগুলোকে এলোমেলো (shuffle) করে দেয়।
Collections.shuffle(list);min(Collection<? extends T> coll):- এই মেথডটি Collection এর মধ্যে সবচেয়ে ছোট উপাদানটি ফেরত দেয়।
T min = Collections.min(collection);max(Collection<? extends T> coll):- এই মেথডটি Collection এর মধ্যে সবচেয়ে বড় উপাদানটি ফেরত দেয়।
T max = Collections.max(collection);binarySearch(List<? extends Comparable<? super T>> list, T key):- এই মেথডটি List এ একটি উপাদান খুঁজে বের করতে ব্যবহার করা হয়। তবে এটি শুধুমাত্র সাজানো তালিকার ক্ষেত্রে কাজ করে।
int index = Collections.binarySearch(list, key);synchronizedList(List<T> list):- এই মেথডটি একটি thread-safe List তৈরি করে দেয়, যা একাধিক থ্রেড থেকে নিরাপদে অ্যাক্সেস করা যেতে পারে।
List<T> synchronizedList = Collections.synchronizedList(list);copy(List<? super T> dest, List<? extends T> src):- এই মেথডটি একটি src List এর উপাদানগুলোকে dest List এ কপি করে দেয়।
Collections.copy(destList, srcList);fill(List<? super T> list, T obj):- এই মেথডটি List এর সমস্ত এলিমেন্ট obj দিয়ে পূর্ণ করে দেয়।
Collections.fill(list, obj);frequency(Collection<?> c, Object o):- এই মেথডটি একটি Collection এ নির্দিষ্ট উপাদানটি কতবার পাওয়া যাচ্ছে তা গণনা করে।
int frequency = Collections.frequency(collection, element);
Collections ক্লাসের ব্যবহার:
1. Sorting a List
Collections.sort() মেথডটি List এর উপাদানগুলোকে সাজানোর জন্য ব্যবহৃত হয়। নিচে একটি উদাহরণ দেওয়া হল:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SortExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Banana");
list.add("Apple");
list.add("Cherry");
// Sorting the list
Collections.sort(list);
System.out.println("Sorted List: " + list);
}
}
Output:
Sorted List: [Apple, Banana, Cherry]
2. Reversing a List
Collections.reverse() মেথডটি একটি List এর উপাদানগুলোকে উল্টানো (reverse) করে দেয়।
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ReverseExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("JavaScript");
// Reversing the list
Collections.reverse(list);
System.out.println("Reversed List: " + list);
}
}
Output:
Reversed List: [JavaScript, Python, Java]
3. Shuffling a List
Collections.shuffle() মেথডটি একটি List এর উপাদানগুলোকে এলোমেলো (random) করে দেয়।
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ShuffleExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("JavaScript");
// Shuffling the list
Collections.shuffle(list);
System.out.println("Shuffled List: " + list);
}
}
Output:
Shuffled List: [Python, Java, JavaScript] // Output may vary due to shuffling
4. Finding the Minimum and Maximum Elements
Collections.min() এবং Collections.max() মেথডের মাধ্যমে একটি Collection থেকে সর্বনিম্ন এবং সর্বোচ্চ উপাদান বের করা যায়।
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class MinMaxExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(5);
numbers.add(30);
numbers.add(20);
int min = Collections.min(numbers);
int max = Collections.max(numbers);
System.out.println("Minimum Value: " + min);
System.out.println("Maximum Value: " + max);
}
}
Output:
Minimum Value: 5
Maximum Value: 30
5. Synchronized Collections
Collections.synchronizedList() মেথডটি একটি thread-safe List তৈরি করে দেয়। এটি একাধিক থ্রেডের মধ্যে নিরাপদে কাজ করার জন্য ব্যবহৃত হয়।
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SynchronizedListExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("JavaScript");
// Creating a synchronized list
List<String> synchronizedList = Collections.synchronizedList(list);
// Synchronized list can now be safely used across multiple threads
System.out.println("Synchronized List: " + synchronizedList);
}
}
Output:
Synchronized List: [Java, Python, JavaScript]
Collections ক্লাসটি Java-তে একটি অত্যন্ত গুরুত্বপূর্ণ ইউটিলিটি ক্লাস, যা sorting, searching, shuffling, thread-safe collections তৈরি করা এবং আরও অনেক ধরনের কার্যাবলী সহজে সম্পাদন করার জন্য ব্যবহৃত হয়। এটি ডেটা স্ট্রাকচারের উপরে বিভিন্ন অপারেশন করার জন্য একটি static utility class, যা List, Set, Queue ইত্যাদির মতো কালেকশন ইন্টারফেসগুলোর সাথে কার্যকরভাবে কাজ করতে পারে।
Collections ক্লাসের ব্যবহারে আপনার প্রোগ্রামিং আরও সহজ, কার্যকর এবং দ্রুততর হতে পারে, বিশেষত যখন ডেটা স্ট্রাকচারগুলোর ওপর জটিল কার্যাবলী সম্পাদন করতে হয়।
Read more